package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 25397
 * Date: 2022-03-24
 * Time: 20:04
 */
public class Demo5 {
    public static void serial(){
        long beg=System.currentTimeMillis();
        long a=0;
        for(long i=0;i<1000000000;i++){
            a++;
        }

        long b=0;
        for(long i=0;i<1000000000;i++){
            b++;
        }
        long end =System.currentTimeMillis();
        System.out.println("消耗时间"+(end-beg)+"ms");
    }

    public static void concurrency() throws InterruptedException {
        long beg=System.currentTimeMillis();//开始时间
        //第一个线程
        Thread t1=new Thread(()->{
          long a=0;
            for(long i=0;i<1000000000;i++){
                a++;
            }
        });
        t1.start();

        //第二个线程
        Thread t2=new Thread(()->{
            long b=0;
            for(long i=0;i<1000000000;i++){
                b++;
            }
        });
        t2.start();

        //此处不能直接这么记录结束时间，别忘了，现在这个求时间戳的代码是在main线程中
        //main线程和t1和t2是并发关系，此处t1和t2还没执行完，这里就开始记录结束时间不准确
        //正确做法是让main线程等t1和t2跑完再记录结束时间
        t1.join();//t1.join()就是让main等等t1线程结束
        t2.join();
        long end=System.currentTimeMillis();
        System.out.println("消耗时间"+(end-beg)+"ms");
    }
    public static void main(String[] args) throws InterruptedException {
        //serial();
        concurrency();
    }
}
